Информатика и технология программирования

Переопределение операций () и []


Переопределение операции () позволяет использовать синтаксис вызова функции применительно к объекту класса (имя объекта с круглыми скобками). Количество операндов в скобках может быть любым. Переопределение операции [ ] позволяет использовать синтаксис элемента массива (имя объекта с квадратными скобками).


//------------------------------------------------------bk73-09.cpp


//------Переопределение операций [] и ()


&#35include &#60string.h&#62
class string // Строка переменной длины


{
char *Str; // Динамический массив символов


int size; // Длина строки


public:
string operator()(int,int); // Операция выделения подстроки


char operator[](int); // Операция выделения символа


int operator[](char*); // Операция поиска подстроки


};
//------ Операция выделения подстроки -------------------


string string::operator()(int n1, int n2)
{
string tmp = *this;
delete tmp.Str;
tmp.Str = new char[n2-n1+1];
strncpy(tmp.Str, Str+n1, n2-n1);
}



Содержание раздела